package com.xiaohudie.suanfa;

/**
 * @Author xiao hu die
 * @Date 2022/1/19 21:26
 * @Version 1.0
 */

import java.util.ArrayList;
import java.util.Arrays;

/**快速排序*/
public class QuickSort {
    public static void main(String[] args) {
  int[] a={-1,25,21,25};
  QuickSort(a,0,a.length-1);
        String s = Arrays.toString(a);
        System.out.println(s);
    }
    public static void QuickSort(int[] ints, int left, int right){
        /**先找数组中间的值当做标准*(不是数值是中间大小)*/
        int l =left;
        int r =right;
        int a;
        int middle = (left+right)/2;
        int anInt = ints[middle];
        while (l<r){
            /**先找这个中间值左边的一定是小于中间值的*/
            while (ints[l]<anInt){
                l++;
            }
            /**在找这个中间值右边的一定是大于中间值的*/
            while (ints[r]>anInt){
                r--;
            }
            if (l>=r){
                break;
            }
            a=ints[l];
            ints[l]=ints[r];
            ints[r] =a;
            if (ints[l]==middle){
                r--;
            }
            if (ints[r]==middle){
                l++;
            }
        }
        if (l==r){
            l++;
            r--;
        }
        /**向左递归*/
      if (left<r){
          QuickSort(ints,left,r);
      }
      if (right>l){
      QuickSort(ints,l,right);
      }
    }
}
